Skip to main content

Topic 3

Topic 3 has 3 parts: Collaboration, Memory, and UML Sequence Diagrams


Topic 03 - Part A - Collaboration

OOP uses objects that interact with eachother. Object relationships are the backbone of Object Oriented Programs.

There are three main kinds of relationships:

1. Association

Association is used for "has" relationships. Such as "Ben has a Website".

2. Aggregation

Aggregation is used when an object is part of something else. Such as "Object Oriented Programming is part of Computer Science" or "Reverse Card is part of the Uno Deck"

3. Dependence

Dependence is very self-explanatory. It is when an object depends on another one. For example "This website uses HTML" or "Soccer uses Soccer Ball".

These are mainly used for temporary "use" relationships, hence the terminology.

Topic 03 - Part B - Memory

This part is all about stacks/heaps.

Pointers and references allow objects to be flexibly networked.

When the project runs (runtime), all objects exist in the heap.

Different languages use a "pointer" in order to reference objects.

C# and JavaC++ and Objective C
Reference types
Value types
Pointers
Types

Pointers make the flexible relationships happen.

An object is "aware" of other objects, and can request that the other object does something.

Topic 03 - Part C - UML Sequence Diagrams

Another aspect of the UML diagrams the sequence diagrams.

UML sequence diagrams showcase a sequence of communication between different objects. A "message" is sent out and changes over time. They are relatively intuitive to read/understand. A sample of one can be seen below.

Photo credit: Microsoft Visio Docs